The present invention relates to states of a multi-active cloud system, and more particularly to forecasting future states of a multi-active cloud system.
Cloud systems can be very complex distributed systems. In larger cloud systems, there may be many types of nodes, containing code from various development teams, deployed by a different operations teams with many test teams responsible for testing different parts of the system. Cloud emphasizes concepts such as self-service, the Application Programming Interface (API) economy and automation. The API economy is the commercial exchange of business functions, capabilities, or competencies as services using web application programming interfaces (APIs). Bearing this in mind, an idealized system includes a fully automated deployment and testing process.
Consider an active-active or active-passive Software as a Service (SaaS) deployment architecture, whereby new code is deployed in parallel to existing code and end users are eventually “flipped” from the old active side to a new active side. Requests received from an end user are routed through load balancing so that the end user is not aware of which of the two sides is providing the service. This fully automated solution introduces challenges. It is desirable that test automation execute without manual intervention but there may be little purpose in starting a test run just before a code “flip” occurs. In an active-passive deployment, the flip may cause an outage causing the test to fail and in an active-active deployment, it may be more desirable to wait until after a flip so that the test run executes against the most up to date code level.
It would be desirable to track the various states of cloud environments and publish this information, for programmatically knowing the current state of an environment, such as whether it is available. It would also be desirable to publish this information to provide indications of future states, for example, if a code flip will likely occur in 20 minutes, it may be best to delay a test run until the flip is complete.